home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
081-090
/
amok81
/
m2
/
defs
/
graphicsd.def
< prev
next >
Wrap
Text File
|
1993-11-04
|
23KB
|
1,128 lines
DEFINITION MODULE GraphicsD; (*$ Implementation:=FALSE *)
(* 10-Mar-1992/cn *)
FROM SYSTEM IMPORT ADDRESS,BITSET,BYTE,LONGSET,WORD,SHIFT,SHORTSET;
FROM ExecD IMPORT
Interrupt,Library,List,Message,MinList,Node,NodePtr,NodeType,
SignalSemaphore,SignalSemaphorePtr,TaskPtr,MsgPortPtr;
FROM Hardware IMPORT
BltnodePtr,BeamConFlags,BeamConFlagSet;
FROM UtilityD IMPORT
HookPtr,tagUser,TagItemPtr;
TYPE
(*
Die Datentypen von Graphics referenzieren sich oft gegenseitig.
Aus diesem Grund werden alle Zeiger zuerst deklariert.
*)
(*36*)AnalogSignalIntervalPtr=POINTER TO AnalogSignalInterval;
AnimCompPtr=POINTER TO AnimComp;
AnimObPtr=POINTER TO AnimOb;
AreaInfoPtr=POINTER TO AreaInfo;
BitMapPtr=POINTER TO BitMap;
(*36*)BitScaleArgsPtr=POINTER TO BitScaleArgs;
BobPtr=POINTER TO Bob;
ClipRectPtr=POINTER TO ClipRect;
CollTablePtr=POINTER TO CollTable;
(*36*)ColorFontColorsPtr=POINTER TO ColorFontColors;
ColorMapPtr=POINTER TO ColorMap;
(*36*)ColorTextFontPtr=POINTER TO ColorTextFont;
CopinitPtr=POINTER TO Copinit;
CopInsPtr=POINTER TO CopIns;
CopListPtr=POINTER TO CopList;
CprlistPtr=POINTER TO Cprlist;
DBufPacketPtr=POINTER TO DBufPacket;
(*36*)DimensionInfoPtr=POINTER TO DimensionInfo;
(*36*)DisplayInfoPtr=POINTER TO DisplayInfo;
(*36*)ExtendedNodePtr=POINTER TO ExtendedNode;
GelsInfoPtr=POINTER TO GelsInfo;
GfxBasePtr=POINTER TO GfxBase;
IsrvstrPtr=POINTER TO Isrvstr;
LayerPtr=POINTER TO Layer;
LayerInfoPtr=POINTER TO LayerInfo;
(*36*)MonitorInfoPtr = POINTER TO MonitorInfo;
(*36*)MonitorSpecPtr=POINTER TO MonitorSpec;
(*36*)NameInfoPtr=POINTER TO NameInfo;
(*36*)PointPtr=POINTER TO Point;
(*36*)QueryHeaderPtr=POINTER TO QueryHeader;
RasInfoPtr=POINTER TO RasInfo;
RastPortPtr=POINTER TO RastPort;
(*36*)Rect32Ptr=POINTER TO Rect32;
RectanglePtr=POINTER TO Rectangle;
RegionPtr=POINTER TO Region;
RegionRectanglePtr=POINTER TO RegionRectangle;
SimpleSpritePtr=POINTER TO SimpleSprite;
(*36*)SpecialMonitorPtr=POINTER TO SpecialMonitor;
TextAttrPtr=POINTER TO TextAttr;
(*36*)TextExtentPtr=POINTER TO TextExtent;
(*36*)TextFontExtensionPtr=POINTER TO TextFontExtension;
TextFontPtr=POINTER TO TextFont;
TmpRasPtr=POINTER TO TmpRas;
(*36*)TTextAttrPtr=POINTER TO TTextAttr;
UCopListPtr=POINTER TO UCopList;
(*36*)ViewExtraPtr=POINTER TO ViewExtra;
ViewPtr=POINTER TO View;
(*36*)ViewPortExtraPtr=POINTER TO ViewPortExtra;
ViewPortPtr=POINTER TO ViewPort;
VSpritePtr=POINTER TO VSprite;
Rectangle=RECORD
minX,minY,maxX,maxY:INTEGER;
END;
Rect32=RECORD
minX,minY,maxX,maxY:LONGINT
END;
Point=RECORD
x,y:INTEGER;
END;
BitMap=RECORD
bytesPerRow:CARDINAL;
rows:CARDINAL;
flags:SHORTCARD;
depth:SHORTCARD;
pad:CARDINAL;
planes:ARRAY [0..7] OF ADDRESS;
END;
Layer=RECORD
front:LayerPtr;
back:LayerPtr;
clipRect:ClipRectPtr;
rp:RastPortPtr;
bounds:Rectangle;
reserved:ARRAY [0..3] OF BYTE;
priority:CARDINAL;
flags:CARDINAL;
superBitMap:BitMapPtr;
superClipRect:ClipRectPtr;
window:ADDRESS;
scrollX:INTEGER;
scrollY:INTEGER;
cr:ClipRectPtr;
cr2:ClipRectPtr;
crnew:ClipRectPtr;
superSaveClipRects:ClipRectPtr;
cliprects:ClipRectPtr;
layerInfo:LayerInfoPtr;
lock:SignalSemaphore;
backFill:HookPtr;
reserved1:LONGCARD;
clipRegion:RegionPtr;
saveClipRects:RegionPtr;
width,height:INTEGER;
reserved2:ARRAY [0..17] OF BYTE;
damageList:RegionPtr;
END;
ClipRect=RECORD
next:ClipRectPtr;
prev:ClipRectPtr;
lobs:LayerPtr;
bitMap:BitMapPtr;
bounds:Rectangle;
p1:ClipRectPtr;
p2:ClipRectPtr;
reserved:LONGINT;
flags:LONGINT;
END;
CONST
needsNoConcealedRasters=01H;
needsNoLayerblitDamage=02H;
isLessX=1;
isLessY=2;
isGrtrX=4;
isGrtrY=8;
CONST
borderHit=0;
topHit=1;
bottomHit=2;
leftHit=4;
rightHit=8;
CONST
move=0;
wait=1;
next=2;
sys=13;
sht=14;
lof=15;
TYPE
CopIns=RECORD
CASE opCode:CARDINAL OF
| move:
destAddr:INTEGER;
destData:INTEGER;
| wait:
vWaitPos:INTEGER;
hWaitPos:INTEGER;
| next:
nxtlist:CopListPtr;
END;
END;
Cprlist=RECORD
next:CprlistPtr;
start:ADDRESS;
maxCount:INTEGER;
END;
CopList=RECORD
next:CopListPtr;
copList:CopListPtr;
viewPort:ViewPortPtr;
copIns:CopInsPtr;
copPtr:CopInsPtr;
copLStart:ADDRESS;
copSStart:ADDRESS;
count:INTEGER;
maxCount:INTEGER;
dyOffset:INTEGER;
(*34*)cop2Start:ADDRESS;
(*34*)cop3Start:ADDRESS;
(*34*)cop4Start:ADDRESS;
(*34*)cop5Start:ADDRESS;
END;
UCopList=RECORD
next:UCopListPtr;
firstCopList:CopListPtr;
copList:CopListPtr;
END;
Copinit=RECORD
vsyncHBlank:ARRAY [0..1] OF CARDINAL;
diwstart:ARRAY [0..3] OF CARDINAL;
diagstrt:ARRAY [0..3] OF CARDINAL;
sprstrtup:ARRAY [0..(2*8*2)-1] OF CARDINAL;
wait14:ARRAY [0..1] OF CARDINAL;
normHBlank:ARRAY [0..1] OF CARDINAL;
genloc:ARRAY [0..3] OF CARDINAL;
jump:ARRAY [0..(2*2)-1] OF CARDINAL;
waitForever:ARRAY [0..1] OF CARDINAL;
sprstop:ARRAY [0..3] OF CARDINAL;
END;
CONST
m640=08000H;
plnCntMsk=07H;
plnCntShft=12;
pf2pri=40H;
colorOn=200H;
dblpf=400H;
holdnmodify=800H;
interlace=04H;
fineScroll=0FH;
fineScrollShift=04H;
fineScrollMask=0FH;
horizPos=07FH;
vrtclPos=01FFH;
vrtclPosShift=07H;
dftchMask=0FFH;
vposrlof=08000H;
TYPE
ExtendedNode=RECORD
succ:NodePtr;
pred:NodePtr;
type:NodeType;
pri:SHORTINT;
name:ADDRESS;
subsystem:SHORTCARD;
subtype:SHORTCARD;
library:LONGINT;
init:PROCEDURE():LONGINT;
END;
CONST
ssGraphics=02H;
viewExtraType=1;
viewportExtraType=2;
specialMonitorType=3;
monitorSpecType=4;
TYPE
LongProc=PROCEDURE():LONGINT;
MonitorSpec=RECORD
node:ExtendedNode;
flags:BITSET;
ratioh:LONGINT;
ratiov:LONGINT;
totalRows:CARDINAL;
totalColorclocks:CARDINAL;
deniseMaxDisplayColumn:CARDINAL;
beamCon0:CARDINAL;
minRow:CARDINAL;
special:SpecialMonitorPtr;
openCount:CARDINAL;
transform:LongProc;
translate:LongProc;
scale: LongProc;
xoffset:CARDINAL;
yoffset:CARDINAL;
legalView:Rectangle;
maxoscan:LongProc;
videoscan:LongProc;
deniseMinDisplayColumn:CARDINAL;
displayCompatible:LONGCARD;
displayInfoDataBase:List;
displayInfoDataBaseSemaphore:SignalSemaphore;
reserved00:LONGCARD;
reserved01:LONGCARD;
END;
CONST
toMonitor=0;
fromMonitor=1;
standardXoffset=9;
standardYoffset=0;
requestNtsc=1;
requestPal=2;
requestSpecial=4;
requestA2024=8;
defaultMonitorName="default.monitor";
ntscMonitorName="ntsc.monitor";
palMonitorName="pal.monitor";
standardMonitorMask=requestNtsc+requestPal;
standardNtscRows=262;
standardPalRows=312;
standardColorclocks=226;
standardDeniseMax=455;
standardDeniseMin=93;
standardNtscBeamcon=0000H;
standardPalBeamcon=displayPal;
specialBeamcon=BeamConFlagSet{
varVBlank,lolDis,varVSync,varBeam,cSBlank};
minNtscRow=21;
minPalRow=29;
standardViewX=81H;
standardViewY=2CH;
standardHbstrt=06H;
standardHsstrt=0BH;
standardHsstop=1CH;
standardHbstop=2CH;
standardVbstrt=0122H;
standardVsstrt=02A6H;
standardVsstop=03AAH;
standardVbstop=1066H;
vgaColorclocks=standardColorclocks DIV 2;
vgaTotalRows=standardNtscRows*2;
vgaDeniseMin=59;
minVgaRow=29;
vgaHbstrt=08H;
vgaHsstrt=0EH;
vgaHsstop=1CH;
vgaHbstop=1EH;
vgaVbstrt=0000H;
vgaVsstrt=0153H;
vgaVsstop=0235H;
vgaVbstop=0CCDH;
vgaMonitorName="vga.monitor";
vga70Colorclocks=standardColorclocks DIV 2;
vga70TotalRows=449;
vga70DeniseMin=59;
minVga70Row=35;
vga70Hbstrt=08H;
vga70Hsstrt=0EH;
vga70Hsstop=1CH;
vga70Hbstop=1EH;
vga70Vbstrt=0000H;
vga70Vsstrt=02A6H;
vga70Vsstop=0388H;
vga70Vbstop=0F73H;
vga70Beamcon=specialBeamcon/BeamConFlagSet{vSyncTrue};
vga70MonitorName="vga70.monitor";
broadcastHbstrt=01H;
broadcastHsstrt=06H;
broadcastHsstop=17H;
broadcastHbstop=27H;
broadcastVbstrt=0000H;
broadcastVsstrt=02A6H;
broadcastVsstop=054CH;
broadcastVbstop=1C40H;
broadcastBeamcon=BeamConFlagSet{lolDis,cSBlank};
ratioFixedpart=4;
ratioUnity=SHIFT(LONGCARD(1),ratioFixedpart);
TYPE
AnalogSignalInterval=RECORD
strt:CARDINAL;
stop:CARDINAL;
END;
SpecialMonitor=RECORD
node:ExtendedNode;
flags:BITSET;
doMonitor:LongProc;
reserved1:LongProc;
reserved2:LongProc;
reserved3:LongProc;
hblank:AnalogSignalInterval;
vblank:AnalogSignalInterval;
hsync:AnalogSignalInterval;
vsync:AnalogSignalInterval;
END;
TYPE
DisplayInfoHandle=ADDRESS;
CONST
dtagDisp=80000000H;
dtagDims=80001000H;
dtagMntr=80002000H;
dtagName=80003000H;
TYPE
QueryHeader=RECORD
structID:LONGCARD;
displayID:LONGCARD;
skipID:LONGCARD;
length:LONGCARD;
END;
TYPE
PropertyFlags=(
isLace,isDualpf,isPf2pri,isHam,isEcs,isPal,isSprites,isGenlock,isWb,
isDraggable,isPanelled,isBeamsync,isExtrahalfbrite,is13,is14,is15,is16
);
PropertyFlagSet=SET OF PropertyFlags;
AvailabilityFlags=(
availNochips,availNomonitor,availNotwithgenlock,avf3,
avf4,avf5,avf6,avf7,avf8
);
AvailabilityFlagSet=SET OF AvailabilityFlags;
DisplayInfo=RECORD
header:QueryHeader;
notAvailable:AvailabilityFlagSet;
propertyFlags:PropertyFlagSet;
resolution:Point;
pixelSpeed:CARDINAL;
numStdSprites:CARDINAL;
paletteRange:CARDINAL;
spriteResolution:Point;
pad:ARRAY [0..3] OF SHORTCARD;
reserved2:ARRAY [0..1] OF LONGCARD;
END;
CONST
diAvailNochip=AvailabilityFlagSet{availNochips};
diAvailNomonitor=AvailabilityFlagSet{availNomonitor};
diAvailNotwithgenlock=AvailabilityFlagSet{availNotwithgenlock};
TYPE
DimensionInfo=RECORD
header:QueryHeader;
maxDepth:CARDINAL;
minRasterWidth:CARDINAL;
minRasterHeight:CARDINAL;
maxRasterWidth:CARDINAL;
maxRasterHeight:CARDINAL;
nominal:Rectangle;
maxOScan:Rectangle;
videoOScan:Rectangle;
txtOScan:Rectangle;
stdOScan:Rectangle;
pad:ARRAY [0..13] OF SHORTCARD;
reserved:ARRAY [0..1] OF LONGCARD;
END;
MonitorInfo=RECORD
header:QueryHeader;
mspc:MonitorSpecPtr;
viewPosition:Point;
viewResolution:Point;
viewPositionRange:Rectangle;
totalRows:CARDINAL;
totalColorClocks:CARDINAL;
minRow:CARDINAL;
compatibility:INTEGER;
pad:ARRAY [0..35] OF SHORTCARD;
DefaultViewPosition:Point;
PreferredModeID:LONGCARD;
reserved:ARRAY [0..1] OF LONGCARD;
END;
CONST
mcompatMixed=0;
mcompatSelf=1;
mcompatNobody=-1;
displayNameLen=32;
TYPE
NameInfo=RECORD
header:QueryHeader;
name:ARRAY [0..displayNameLen-1] OF CHAR;
reserved:ARRAY [0..1] OF LONGCARD;
END;
CONST
invalidID=-1;
monitorIDmask=0FFFF1000H;
defaultMonitorID=00000000H;
ntscMonitorID=00011000H;
palMonitorID=00021000H;
loresKey=00000000H;
hiresKey=00008000H;
superKey=00008020H;
hamKey=00000800H;
loreslaceKey=00000004H;
hireslaceKey=00008004H;
superlaceKey=00008024H;
hamlaceKey=00000804H;
loresdpfKey=00000400H;
hiresdpfKey=00008400H;
superdpfKey=00008420H;
loreslacedpfKey=00000404H;
hireslacedpfKey=00008404H;
superlacedpfKey=00008424H;
loresdpf2Key=00000440H;
hiresdpf2Key=00008440H;
superdpf2Key=00008460H;
loreslacedpf2Key=00000444H;
hireslacedpf2Key=00008444H;
superlacedpf2Key=00008464H;
extrahalfbriteKey=00000080H;
extrahalfbritelaceKey=00000084H;
vgaMonitorID=00031000H;
vgaextraloresKey=00031004H;
vgaloresKey=00039004H;
vgaproductKey=00039024H;
vgahamKey=00031804H;
vgaextraloreslaceKey=00031005H;
vgaloreslaceKey=00039005H;
vgaproductlaceKey=00039025H;
vgahamlaceKey=00031805H;
vgaextraloresdpfKey=00031404H;
vgaloresdpfKey=00039404H;
vgaproductdpfKey=00039424H;
vgaextraloreslacedpfKey=00031405H;
vgaloreslacedpfKey=00039405H;
vgaproductlacedpfKey=00039425H;
vgaextraloresdpf2Key=00031444H;
vgaloresdpf2Key=00039444H;
vgaproductdpf2Key=00039464H;
vgaextraloreslacedpf2Key=00031445H;
vgaloreslacedpf2Key=00039445H;
vgaproductlacedpf2Key=00039465H;
vgaextrahalfbriteKey=00031084H;
vgaextrahalfbritelaceKey=00031085H;
a2024MonitorID=00041000H;
a2024tenhertzKey=00041000H;
a2024fifteenhertzKey=00049000H;
protoMonitorID=00051000H;
CONST
ringtrigger=01H;
anfracsize=06H;
animhalf=020H;
b2Norm=0;
b2Swap=1;
b2Bobber=2;
TYPE
VSpriteFlags=(
vsprite,saveBack,overlay,mustDraw,vf4,vf5,vf6,vf7,
backSaved,bobUpdate,gelGone,vsOverflow,vf12,vf13,vf14,vf15
);
VSpriteFlagSet=SET OF VSpriteFlags;
VSprite=RECORD
nextVSprite:VSpritePtr;
prevVSprite:VSpritePtr;
drawPath:VSpritePtr;
clearPath:VSpritePtr;
oldY:INTEGER;
oldX:INTEGER;
flags:VSpriteFlagSet;
y:INTEGER;
x:INTEGER;
height:INTEGER;
width:INTEGER;
depth:INTEGER;
meMask:BITSET;
hitMask:BITSET;
imageData:ADDRESS;
borderLine:ADDRESS;
collMask:ADDRESS;
sprColors:ADDRESS;
vsBob:BobPtr;
planePick:SHORTCARD;
planeOnOff:SHORTCARD;
END;
BobFlags=(
saveBob,bobIsComp,bf2,bf3,bf4,bf5,bf6,bf7,
bWaiting,bDrawn,bobsAway,bobNix,savePreserve,outStep,bf14,bf15
);
BobFlagSet=SET OF BobFlags;
Bob=RECORD
flags:BobFlagSet;
saveBuffer:ADDRESS;
imageShadow:ADDRESS;
before:BobPtr;
after:BobPtr;
bobVSprite:VSpritePtr;
bobComp:AnimCompPtr;
dBuffer:DBufPacketPtr;
END;
AnimComp=RECORD
flags:INTEGER;
timer:INTEGER;
timeSet:INTEGER;
nextComp:AnimCompPtr;
prevComp:AnimCompPtr;
nextSeq:AnimCompPtr;
prevSeq:AnimCompPtr;
animCRoutine:ADDRESS;
yTrans:INTEGER;
xTrans:INTEGER;
headOb:AnimObPtr;
animBob:BobPtr;
END;
AnimOb=RECORD
nextOb:AnimObPtr;
prevOb:AnimObPtr;
clock:LONGINT;
anOldY:INTEGER;
anOldX:INTEGER;
anY:INTEGER;
anX:INTEGER;
yVel:INTEGER;
xVel:INTEGER;
yAccel:INTEGER;
xAccel:INTEGER;
ringYTrans:INTEGER;
ringXTrans:INTEGER;
animORoutine:ADDRESS;
headComp:AnimCompPtr;
END;
DBufPacket=RECORD
bufY:INTEGER;
bufX:INTEGER;
bufPath:VSpritePtr;
bufBuffer:ADDRESS;
END;
CollTable=RECORD
collPtrs:ARRAY [0..15] OF ADDRESS
END;
DisplayFlags=(
ntsc,genloc,pal,todaSafe,df4,df5,df6,df7,
df8,df9,df10,df11,df12,df13,df14,df15
);
DisplayFlagSet=SET OF DisplayFlags;
(*36*)ChipRevs=(hrAgnus,hrDenise,cr2,cr3,cr4,cr5,cr6,cr7);
(*36*)ChipRevSet=SET OF ChipRevs;
CONST
bigBlits=hrAgnus;
TYPE
GfxBase=RECORD
libNode:Library;
actiView:ViewPtr;
copinit:CopinitPtr;
cia:ADDRESS;
blitter:ADDRESS;
loFlist:ADDRESS;
shFlist:ADDRESS;
blthd:BltnodePtr;
blttl:BltnodePtr;
bsblthd:BltnodePtr;
bsblttl:BltnodePtr;
vbsrv:Interrupt;
timsrv:Interrupt;
bltsrv:Interrupt;
textFonts:List;
defaultFont:TextFontPtr;
modes:BITSET;
vBlank:SHORTCARD;
debug:BYTE;
beamSync:INTEGER;
bplcon0:BITSET;
spriteReserved:SHORTCARD;
bytereserved:SHORTCARD;
flags:BITSET;
blitLock:INTEGER;
blitNest:INTEGER;
blitWaitQ:List;
blitOwner:TaskPtr;
waitQ:List;
displayFlags:DisplayFlagSet;
simpleSprites:ADDRESS;
maxDisplayRow:CARDINAL;
maxDisplayColumn:CARDINAL;
normalDisplayRows:CARDINAL;
normalDisplayColumns:CARDINAL;
normalDPMX:CARDINAL;
normalDPMY:CARDINAL;
lastChanceMemory:SignalSemaphorePtr;
lcMptr:ADDRESS;
microsPerLine:CARDINAL;
minDisplayColumn:CARDINAL;
(*36*)chipRevBits0:ChipRevSet;
(*36*)reservedPad:SHORTCARD;
(*36*)reserved:ARRAY [0..3] OF SHORTCARD;
(*36*)monitorId:CARDINAL;
(*36*)hedley:ARRAY [0..7] OF ADDRESS;
(*36*)hedleySprites:ARRAY[0..7]OF ADDRESS;
(*36*)hedleySprites1:ARRAY[0..7]OF ADDRESS;
(*36*)hedleyCount:INTEGER;
(*36*)hedleyFlags:BITSET;
(*36*)hedleyTmp:INTEGER;
(*36*)hashTable:ADDRESS;
(*36*)currentTotRows:CARDINAL;
(*36*)currentTotCclks:CARDINAL;
(*36*)hedleyHint:SHORTCARD;
(*36*)hedleyHint2:SHORTCARD;
(*36*)nreserved:ARRAY [0..3] OF LONGCARD;
(*36*)a2024SyncRaster:ADDRESS;
(*36*)controlDeltaPal:INTEGER;
(*36*)controlDeltaNtsc:INTEGER;
(*36*)currentMonitor:MonitorSpecPtr;
(*36*)monitorList:List;
(*36*)defaultMonitor:MonitorSpecPtr;
(*36*)monitorListSemaphore:SignalSemaphorePtr;
(*36*)displayInfoDataBase:ADDRESS;
(*36*)lapad:INTEGER;
(*36*)actiViewCprSemaphore:SignalSemaphorePtr;
(*36*)utilityBase:ADDRESS;
(*36*)execBase:ADDRESS;
END;
CONST
blitMsgFault=4;
TYPE
Isrvstr=RECORD
node:Node;
iptr:IsrvstrPtr;
code:ADDRESS;
ccode:ADDRESS;
carg:LONGINT;
END;
LayerFlags=(
layerSimple,layerSmart,layerSuper,lf3,layerUpdating,lf5,layerBackdrop,
layerRefresh,layerClipRectsLost
);
LayerFlagSet=SET OF LayerFlags;
LayerInfo=RECORD
layer:LayerPtr;
lp:LayerPtr;
obs:ClipRectPtr;
freeClipRects:MinList;
lock:SignalSemaphore;
head:List;
longreserved:LONGINT;
flags:LayerFlagSet;
count:SHORTINT;
lockLayersCount:SHORTINT;
layerInfoExtraSize:CARDINAL;
blitbuff:ADDRESS;
layerInfoExtra:ADDRESS;
END;
CONST
lmnRegion=-1;
newLayerInfoCalled=01H;
alertLayersNoMem=083010000H;
TYPE
AreaInfo=RECORD
vctrTbl:ADDRESS;
vctrPtr:ADDRESS;
flagTbl:ADDRESS;
flagPtr:ADDRESS;
count:INTEGER;
maxCount:INTEGER;
firstX:INTEGER;
firstY:INTEGER;
END;
TmpRas=RECORD
rasPtr:ADDRESS;
size:LONGINT;
END;
GelsInfo=RECORD
sprRsrvd:SHORTINT;
flags:SHORTCARD;
gelHead:VSpritePtr;
gelTail:VSpritePtr;
nextLine:ADDRESS;
lastColor:ADDRESS;
collHandler:CollTablePtr;
leftmost:INTEGER;
rightmost:INTEGER;
topmost:INTEGER;
bottommost:INTEGER;
firstBlissObj:ADDRESS;
lastBlissObj:ADDRESS;
END;
DrawModes=(dm0,complement,inversvid);
DrawModeSet=SET OF DrawModes;
FontStyles=(
underlined,bold,italic,extended,fs4,fs5,colorFont,tagged
);
FontStyleSet=SET OF FontStyles;
FontFlags=(
romFont,diskFont,revPath,tallDot,wideDot,proportional,designed,removed
);
FontFlagSet=SET OF FontFlags;
RastPortFlags=(
firstDot,oneDot,dBuffer,areaOutline,rpf4,noCrossFill,rpf6,rpf7,rpf8
);
RastPortFlagSet=SET OF RastPortFlags;
RastPort=RECORD
layer:LayerPtr;
bitMap:BitMapPtr;
areaPtrn:ADDRESS;
tmpRas:TmpRasPtr;
areaInfo:AreaInfoPtr;
gelsInfo:GelsInfoPtr;
mask:SHORTCARD;
fgPen:SHORTCARD;
bgPen:SHORTCARD;
aOlPen:SHORTCARD;
drawMode:DrawModeSet;
areaPtSz:SHORTCARD;
linPatCnt:SHORTCARD;
dummy:BYTE;
flags:RastPortFlagSet;
linePtrn:CARDINAL;
x:INTEGER;
y:INTEGER;
minterms:ARRAY [0..7] OF SHORTCARD;
penWidth:INTEGER;
penHeight:INTEGER;
font:TextFontPtr;
algoStyle:FontStyleSet;
txFlags:FontFlagSet;
txHeight:CARDINAL;
txWidth:CARDINAL;
txBaseline:CARDINAL;
txSpacing:INTEGER;
user:ADDRESS;
longreserved:ARRAY [0..1] OF LONGINT;
wordreserved:ARRAY [0..6] OF WORD;
reserved:ARRAY [0..7] OF BYTE;
END;
CONST
jam1=DrawModeSet{};
jam2=DrawModeSet{dm0};
spriteAttached=080H;
normalFont=FontStyleSet{};
TYPE
RegionRectangle=RECORD
next:RegionRectanglePtr;
prev:RegionRectanglePtr;
bounds:Rectangle;
END;
Region=RECORD
bounds:Rectangle;
regionRectangle:RegionRectanglePtr;
END;
TYPE
BitScaleArgs=RECORD
srcX:CARDINAL;
srcY:CARDINAL;
srcWidth:CARDINAL;
srcHeight:CARDINAL;
srcXFactor:CARDINAL;
srcYFactor:CARDINAL;
destX:CARDINAL;
destY:CARDINAL;
destWidth:CARDINAL;
destHeight:CARDINAL;
xDestFactor:CARDINAL;
yDestFactor:CARDINAL;
srcBitMap:BitMapPtr;
destBitMap:BitMapPtr;
flags:LONGCARD;
xDDA:CARDINAL;
yDDA:CARDINAL;
reserved1:LONGINT;
reserved2:LONGINT;
END;
SimpleSprite=RECORD
posctldata:ADDRESS;
height:CARDINAL;
x:CARDINAL;
y:CARDINAL;
num:INTEGER;
END;
TextAttr=RECORD
name:ADDRESS;
ySize:CARDINAL;
style:FontStyleSet;
flags:FontFlagSet;
END;
TTextAttr=RECORD
name:ADDRESS;
ySize:CARDINAL;
style:FontStyleSet;
flags:FontFlagSet;
tags:TagItemPtr;
END;
CONST
taDeviceDPI=tagUser+1;
maxFontMatchWeight=32767;
TYPE
TextFont=RECORD
message:Message;
ySize:CARDINAL;
style:FontStyleSet;
flags:FontFlagSet;
xSize:CARDINAL;
baseline:CARDINAL;
boldSmear:CARDINAL;
accessors:CARDINAL;
loChar:CHAR;
hiChar:CHAR;
charData:ADDRESS;
modulo:CARDINAL;
charLoc:ADDRESS;
charSpace:ADDRESS;
charKern:ADDRESS;
END;
TYPE
TextFontExt0Flags=(noRemFont);
TextFontExt0FlagSet=SET OF TextFontExt0Flags;
TextFontExtension=RECORD
matchWord:CARDINAL;
flags0:TextFontExt0FlagSet;
flags1:SHORTSET;
backPtr:TextFontPtr;
origReplyPort:MsgPortPtr;
tags:TagItemPtr;
oFontPatchS:ADDRESS;
oFontPatchK:ADDRESS;
END;
TYPE
ColorFontColors=RECORD
reserved:CARDINAL;
count:CARDINAL;
colorTable:POINTER TO ARRAY [0..1000] OF CARDINAL;
END;
ColorTextFontFlags=(
colorfont,greyfont,antialias,ctf3,ctf4,ctf5,ctf6,ctf7,
ctf8,ctf9,ctf10,ctf11,ctf12,ctf13,ctf14,ctf15
);
ColorTextFontFlagSet=SET OF ColorTextFontFlags;
CONST
mapColor=colorFont;
colorMask=ColorTextFontFlagSet{colorfont..ctf3};
TYPE
ColorTextFont=RECORD
tf:TextFont;
flags:CARDINAL;
depth:SHORTCARD;
fgColor:SHORTCARD;
low:SHORTCARD;
high:SHORTCARD;
planePick:SHORTCARD;
planeOnOff:SHORTCARD;
colorFontColors:ColorFontColorsPtr;
charData:ARRAY[0..7] OF ADDRESS;
END;
TextExtent=RECORD
width:CARDINAL;
height:CARDINAL;
extent:Rectangle;
END;
CONST
vtagEndCm=00000000H;
TYPE
VTags=(
vtagChromakeyClr:=tagUser,
vtagChromakeySet,
vtagBitplanekeyClr,
vtagBitplanekeySet,
vtagBorderblankClr,
vtagBorderblankSet,
vtagBordernotransClr,
vtagBordernotransSet,
vtagChromaPenClr,
vtagChromaPenSet,
vtagChromaPlaneSet,
vtagAttachCmSet,
vtagNextbufCm,
vtagBatchCmClr,
vtagBatchCmSet,
vtagNormalDispGet,
vtagNormalDispSet,
vtagCoerceDispGet,
vtagCoerceDispSet,
vtagViewportextraGet,
vtagViewportextraSet,
vtagChromakeyGet,
vtagBitplanekeyGet,
vtagBorderblankGet,
vtagBordernotransGet,
vtagChromaPenGet,
vtagChromaPlaneGet,
vtagAttachCmGet,
vtagBatchCmGet,
vtagBatchItemsGet,
vtagBatchItemsSet,
vtagBatchItemsAdd,
vtagVpmodeidGet,
vtagVpmodeidSet,
vtagVpmodeidClr,
vtagUserclipGet,
vtagUserclipSet,
vtagUserclipClr
);
ViewModes=(
vm0,genlocVideo,lace,vm3,vm4,superHires,pfba,extraHalfbrite,
genlocAudio,vm9,dualpf,ham,extendedMode,vpHide,sprites,hires
);
ViewModeSet=SET OF ViewModes;
ViewPort=RECORD
next:ViewPortPtr;
colorMap:ColorMapPtr;
dspIns:CopListPtr;
sprIns:CopListPtr;
clrIns:CopListPtr;
uCopIns:UCopListPtr;
dWidth:INTEGER;
dHeight:INTEGER;
dxOffset:INTEGER;
dyOffset:INTEGER;
modes:ViewModeSet;
spritePriorities:SHORTCARD;
extendedModes:SHORTSET;
rasInfo:RasInfoPtr;
END;
View=RECORD
viewPort:ViewPortPtr;
lofCprList:CprlistPtr;
shfCprList:CprlistPtr;
dyOffset:INTEGER;
dxOffset:INTEGER;
modes:ViewModeSet;
END;
ViewExtra=RECORD
n:ExtendedNode;
view:ViewPtr;
monitor:MonitorSpecPtr;
END;
ViewPortExtra=RECORD
n:ExtendedNode;
viewPort:ViewPortPtr;
displayClip:Rectangle;
END;
RasInfo=RECORD
next:RasInfoPtr;
bitMap:BitMapPtr;
rxOffset:INTEGER;
ryOffset:INTEGER;
END;
TYPE
ColorMapType=(colorMapTypeV33,colorMapTypeV36);
ColorMapFlags=(
colormapTransparency,colorPlaneTransparency,borderBlanking,
borderNoTransparency,videoControlBatch,userCopperClip,cm6,cm7
);
ColorMapFlagSet=SET OF ColorMapFlags;
ColorMap=RECORD
flags:ColorMapFlagSet;
type:ColorMapType;
count:CARDINAL;
colorTable:ADDRESS;
vpe:ViewPortExtraPtr;
transparencyBits:ADDRESS;
transparencyPlane:SHORTCARD;
reserved1:SHORTCARD;
reserved2:CARDINAL;
vp:ViewPortPtr;
normalDisplayInfo:ADDRESS;
coerceDisplayInfo:ADDRESS;
batchItems:TagItemPtr;
vpModeID:LONGCARD;
END;
END GraphicsD.noimp